//资源引入
import axios from 'axios';
import { MessageBox, Message } from 'element-ui';

//ajax请求实例创建
const service = axios.create({
    timeout: 5000
});

//请求拦截器
service.interceptors.request.use(
    undefined,
    error => {
        //请求网络错误 error 有 message 属性
        return Promise.reject(error.message);
    }
);

//响应拦截器
service.interceptors.response.use(
    response => {
        let data = response.data;
        //状态码正确
        if (data.code !== undefined) {
            // 新版本响应返回
            if (data.code === 0) {
                return data;
            } else {
                //错误弹窗提示
                Message({
                    message: data.msg || 'Error',
                    type: 'error',
                    duration: 3 * 1000
                });
                //返回错误信息
                return Promise.reject(data.msg);
            }
        } else {
            // 旧版本响应返回
            if (data.respCode !== undefined) {
                if (data.respCode === '1') {
                    return data;
                } else {
                    // 错误弹窗提醒
                    Message({
                        message: data.entry.respMsg || 'Error',
                        type: 'error',
                        duration: 3 * 1000
                    })
                    //返回错误信息
                    return Promise.reject(data.entry.respMsg);
                }
            }
        }
    },
    error => {
        //错误弹窗提示
        Message({
            message: error.message,
            type: 'error',
            duration: 3 * 1000
        });
        //返回错误信息
        return Promise.reject(error.message);
    }
);

export default service;
